﻿package com.bn.NNYY;

import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.media.AudioManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.DisplayMetrics;
import android.view.KeyEvent;
import android.view.Window;
import android.view.WindowManager;

//表示各个界面的安全类型枚举
enum WhichView {WELLCOM_VIEW,MAIN_VIEW,GAME_VIEW,LAST_VIEW,SCORE_VIEW}

public class MyActivity extends Activity {
	
	GameView gameView;//游戏界面的引用
	WellcomeSurfaceView wellcomView;//"百纳科技"欢迎界面类的引用
	MainView mainview;//"选择主界面"类的引用
	LastView lastview;//最终界面的引用
	ScoreSurfaceView scoreview;
	WhichView curr;//枚举类的引用
	
//	final int EXIT_READER=1;//退出软件对话框
	
	boolean backgroundsoundFlag=true;//背景音乐开启的标志位，默认为开启
	
	Handler myHandler = new Handler(){//处理各个SurfaceView发送的消息
        public void handleMessage(Message msg) {
        	switch(msg.what)
        	{
        	case 0:
        		goToMainView();//进入“选择主界面”
        		break;
        	case 1:
        		goToGameView();//进入"游戏界面"
        		break;
        	case 2:
        		goToLastView();//进入游戏结束界面
        		break;
        	case 3:
        		goToScoreView();
        		break;
        	}
        }
	};
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //游戏过程中只允许调整多媒体音量，而不允许调整通话音量
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
        		WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉标头
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//强制横屏
        
        //获取分辨率
        DisplayMetrics dm=new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        //给常量类中的屏幕高和宽赋值
        if(dm.widthPixels>dm.heightPixels)
        {
        	Constant.SCREEN_WIDTH=dm.widthPixels;
        	Constant.SCREEN_HEIGHT=dm.heightPixels;
        }else
        {
        	Constant.SCREEN_HEIGHT=dm.widthPixels;
        	Constant.SCREEN_WIDTH=dm.heightPixels;
        }
        goToWellcomView();//进入"欢迎界面"
    }

    
	@Override
	public boolean onKeyDown(int keyCode,KeyEvent e)
	{
		if(keyCode==4)
		{
			 switch(curr)
			 {
			 case SCORE_VIEW://得分界面，跳转到主控制界面
			 case LAST_VIEW://最后的界面，跳转到主控制界面
			 case GAME_VIEW://如果游戏进行中，返回到主界面
				 goToMainView();
				 break;
			 case WELLCOM_VIEW://欢迎界面，退出游戏
			 case MAIN_VIEW://主控制界面，退出游戏
				 System.exit(0);
				 break;
			 
			 }
			   return true;
		}
		return false;

	}
//	@Override
//	public Dialog onCreateDialog(int id)
//	{
//		Dialog dialog=null;
//		switch(id)
//		{
//		case EXIT_READER://退出软件对话框
//			Builder b=new AlertDialog.Builder(this);
//			b.setItems(null, null);
//			dialog=b.create();
//			break;
//		}
//		return dialog;
//	}
	
//	//每次弹出对话框时被回调以动态更新对话框内容的方法
//    @Override
//    public void onPrepareDialog(int id, final Dialog dialog)
//    {
//    	//若不是等待对话框则返回
//    	switch(id)
//    	{
//    	case EXIT_READER://退出对话框
// 		   
// 		   //对话框对应的总垂直方向LinearLayout
//   		   	LinearLayout lle=new LinearLayout(MyActivity.this);
//   			lle.setOrientation(LinearLayout.VERTICAL);		//设置朝向	
//   			lle.setGravity(Gravity.CENTER_HORIZONTAL);
//   			lle.setBackgroundResource(R.drawable.dialog);
//   			
//   			//标题行的水平LinearLayout
//   			LinearLayout llt=new LinearLayout(MyActivity.this);
//   			llt.setOrientation(LinearLayout.HORIZONTAL);		//设置朝向	
//   			llt.setGravity(Gravity.CENTER);//居中
//   			llt.setLayoutParams(new ViewGroup.LayoutParams(200, LayoutParams.WRAP_CONTENT));
//   			
//   			//标题行的文字
//   			TextView eTitle=new TextView(MyActivity.this);
//   			eTitle.setText(R.string.exit_software);
//   			eTitle.setTextSize(20);//设置字体大小
//   			eTitle.setTextColor(MyActivity .this.getResources().getColor(R.color.white));//设置字体颜色
//   			llt.addView(eTitle);
//   			
//   			//将标题行添加到总LinearLayout
//   			lle.addView(llt);
//   			
//   			LinearLayout lleb=new LinearLayout(MyActivity.this);
//   			lleb.setOrientation(LinearLayout.HORIZONTAL);//水平方向
//   			lleb.setLayoutParams(new ViewGroup.LayoutParams(200, LayoutParams.WRAP_CONTENT));
//   			lleb.setGravity(Gravity.CENTER);
//
//	       	    //确定按钮
//	       	    Button eok=new Button(MyActivity.this);//清空书签按钮
//	       	    eok.setText(R.string.ok);//设置“按钮”的名字
//	       	    eok.setTextSize(18);//设置字体大小
//	       	    eok.setWidth(100);
//	       	    eok.setHeight(20);
//	       	    eok.setGravity(Gravity.CENTER);
//	       	    eok.setOnClickListener(
//	       	    		 new OnClickListener()
//	       	    		 {
//							public void onClick(View v) {
//								dialog.cancel();//取消对话框
//								System.exit(0);	
//							} 
//	       	    		 } 
//	       	     );
//	       	    lleb.addView(eok);//加入到linearLayout中
//	       	     //取消按钮
//	       	    Button eCancel=new Button(MyActivity.this);
//	       	    eCancel.setText(R.string.cancel);//设置按钮的名字
//	       	    eCancel.setTextSize(18);
//	       	    eCancel.setWidth(100);
//	       	    eCancel.setHeight(20);
//	       	    eCancel.setGravity(Gravity.CENTER);
//	            eCancel.setOnClickListener(
//	      	    		 new OnClickListener()
//	       	    		 {
//							public void onClick(View v) {
//								dialog.cancel();//取消对话框
//							}
//	       	    		 }
//	       	     );
//	       	    lleb.addView(eCancel);
//	       	    lle.addView(lleb);
//	       	    dialog.setContentView(lle);
// 		   break;
//    	
//    	}
//    }
    //向Handler发送信息的方法
    public void sendMessage(int what)
    {
    	Message msg = myHandler.obtainMessage(what); 
    	myHandler.sendMessage(msg);
    } 
    //进入"百纳科技"界面
	public void goToWellcomView()
	{
		if(wellcomView==null)
    	{
			wellcomView=new WellcomeSurfaceView(this);
    	}
		setContentView(wellcomView);
		curr=WhichView.WELLCOM_VIEW;
	}
	//进入"游戏界面"
	public void goToGameView()
	{
		if(gameView==null){
			gameView=new GameView(this);
    	}
    	setContentView(gameView);
    	gameView.requestFocus();//获取焦点
    	gameView.setFocusableInTouchMode(true);//设为可触控
    	curr=WhichView.GAME_VIEW;
	}
	//进入“选择主界面”
	public void goToMainView()
	{
		if(mainview==null){
			mainview=new MainView(this);
    	}
    	setContentView(mainview);
    	mainview.requestFocus();//获取焦点
    	mainview.setFocusableInTouchMode(true);//设为可触控
    	curr=WhichView.MAIN_VIEW;
	}
	//进入游戏结束界面
	public void goToLastView()
	{
		DBUtils.insert(gameView.score.getScore(), DateUtil.getCurrentDate());
		if(lastview==null){
			lastview=new LastView(this);
    	}
    	setContentView(lastview);
    	lastview.requestFocus();//获取焦点
    	lastview.setFocusableInTouchMode(true);//设为可触控
    	curr=WhichView.LAST_VIEW;
	}
	public void goToScoreView()
	{
		if(scoreview==null){
			scoreview=new ScoreSurfaceView(this);
    	}
    	setContentView(scoreview);
    	scoreview.requestFocus();//获取焦点
    	scoreview.setFocusableInTouchMode(true);//设为可触控
    	curr=WhichView.SCORE_VIEW;
	}
    @Override 
    public void onResume()
    {
    	super.onResume();
    }
    @Override 
    public void onPause()
    {
    	super.onPause();
    }
}